____ _ _ _ _
| _ \ ___ | |_ (_) _ __ ___ __| | (_) __ _
| |_) | / _ \ | __| | | | '_ \ / _ \ / _| | | | / _ |
| _ < | __/ | |_ | | | |_) | | __/ | (_| | | | | (_| |
|_| \_\ \___| \__| |_| | .__/ \___| \__,_| |_| \__,_|
|_|
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b
Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―
Porter-Stemmer-Algorithmus
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
top
Der Porter-Stemmer-Algorithmus ist ein verbreiteter Algorithmus der Computerlinguistik zum automatischen ZurΓΌckfΓΌhren von WΓΆrtern auf ihren Wortstamm (Stemming). Der Algorithmus basiert auf einer Menge von VerkΓΌrzungsregeln, die so lange auf ein Wort angewandt werden, bis dieses eine Minimalanzahl von Silben aufweist. Der ursprΓΌnglich fΓΌr WΓΆrter der englischen Sprache entwickelte Algorithmus kann relativ leicht fΓΌr andere Sprachen portiert werden.
Contents
β’ Funktionsweise
β’ Anmerkungen
β’ Literatur
β’ Weblinks
β’ Einzelnachweise
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Funktionsweise
Bestimmung der Silbenanzahl
MaΓgeblich ist genaugenommen nicht die Anzahl der Silben, sondern die Anzahl der Vokal-Konsonant-Sequenzen. Jedes Wort lΓ€sst sich als eine Zeichenkette der Form [C](VC)m[V] interpretieren, wobei C fΓΌr eine Folge von einem oder mehreren Konsonanten und V fΓΌr eine Folge von einem oder mehreren Vokalen steht. Gemessen wird die Anzahl m der Vokal-Konsonant-Sequenzen zwischen optional fΓΌhrenden Konsonanten und einer optionalen Folge von Vokalen am Ende.
Beispiele:
β’ tr-ee, t-o (m=0)
β’ w-eb, ant (m=1)
β’ b-etw-een (m=2)
β’ W-ik-ip-ed-ia (m=3)
VerkΓΌrzungsregeln
Die VerkΓΌrzungsregeln bestehen aus Paaren von Bedingungen und Ableitungen fΓΌr verschiedene Suffixe (Wortendungen). Die Regeln sind in Gruppen zusammengefasst, die nacheinander abgearbeitet werden. Aus jeder Gruppe darf nur eine Regel angewandt werden.
Beispiel: Die erste Gruppe beinhaltet die Suffix-VerkΓΌrzungsregeln "sses" β "s", "ies" β "i" und "s" β "", die beispielsweise zu den Ableitungen "libraries" β "librari" und "Wikis" β "Wiki" fΓΌhren. Eine spΓ€ter folgende Gruppe besteht aus der Regel "y" β "i", so dass beispielsweise das Wort "library" auf den gleichen Stamm ("library" β "librari") zurΓΌckgefΓΌhrt wird.
Implementierungen
Auf der Webseite des Porter-Stemmer-Algorithmus finden sich Implementierungen in mehreren Programmiersprachen. Unter snowballstem.org befindet sich die von Martin Porter entwickelte Zeichenkettenverarbeitungssprache "Snowball", mit deren Hilfe Porter-Stemmer beschrieben werden kΓΆnnen. Dort findet man auch einen Porter-Stemmer fΓΌr die deutsche Sprache.cite-ref-1[1]
Anmerkungen
Die aus einem Wort abgeleiteten StΓ€mme entsprechen oft nicht den linguistisch korrekten WortstΓ€mmen. Da das Ziel des Stemmings jedoch keine linguistische Analyse ist, sondern verwandte Worte auf ein und dieselbe Zeichenkette zurΓΌckgefΓΌhrt werden sollen, spielt dies keine Rolle.
Wie praktisch alle Stemming-Algorithmen arbeitet auch der Porter-Stemmer nicht mit hundertprozentiger Genauigkeit, so dass es bei einigen Worten vorkommen kann, dass zu viel (Overstemming) oder zu wenig (Understemming) abgeschnitten wird. In der Praxis ist er jedoch ausreichend gut (siehe auch weitere Hintergrundinformationen zum Thema im Artikel Stemming).
Literatur
β’ M.F. Porter: An algorithm for suffix stripping. In: Program, 14(3), S. 130β137, Juli 1980
Weblinks
β’ The Porter Stemming Algorithm β Martin Porters Webseite zum Porter-Stemming-Algorithmus
Einzelnachweise
cite-note-11. β Martin Porter: Snowball: A language for stemming algorithms. Abgerufen am 11. Februar 2019 (englisch).